new functions: parallel_map with a unified API that allows multiprocessing and ipython.parallel implementations to be swappable