from __future__ import print_function from multiprocessing import Pool import sys import numpy as np def make_data(i): print('Creating data') a = np.random.randn(5000, 90000) print('Created data') return a pool = Pool(processes=2) try: results = pool.map_async(make_data, range(5)).get(9999999) except KeyboardInterrupt: print("\nCaught KeyboardInterrupt, terminating workers.") sys.exit(1) pool.close() pool.join()