p = multiprocessing.Pool()
rs = p.map_async(do_work, range(num_tasks))
p.close()
while True:
    if rs.ready():
        break
remaining = rs._number_left
print('Waiting for', remaining, 'tasks to complete...')
time.sleep(0.5)
Show the progress of a Python multiprocessing pool map call?