You can use pool.apply(f, args): in the argument, the f is only executed in one of the workers of the pool. So one of the processes in the pool will run f(args).
The Pool.apply_async method has a callback which, if supplied, is called when the function is complete. This can be used instead of calling get().
Whereas pool.map(f, iterable) chops the iterable into a number of chunks which it submits to the process pool as separate tasks. So you take advantage of all the processes in the pool.