p = multiprocessing.Pool()
rs = p.imap_unordered(do_work, range(num_tasks))
p.close()
while True:
    completed = rs._index
if completed == num_tasks:
    break
print('Waiting for', num_tasks - completed, 'tasks to complete...')
time.sleep(2)
Show the progress of a Python multiprocessing pool map call?