import multiprocessing import time def doubler(number): return number ** 2 def count(number): nr = 0 for i in range(number): nr += i return number if __name__ == '__main__': numbers = range(2, 100000) pool = multiprocessing.Pool(processes=6) # print() rs = pool.map_async(pool.map(count, numbers), range(len(numbers))) pool.close() # No more work while (True): if (rs.ready()): break remaining = rs._number_left print("Waiting for", remaining, "tasks to complete...") time.sleep(0.5)