Instruções de impressão multithread do Python atrasadas até que todos os threads concluam a execução

Eu tenho um pedaço de código abaixo que cria alguns tópicos para executar uma tarefa, que funciona perfeitamente bem por conta própria. No entanto, estou tentando entender por que as instruções de impressão que eu chamo na minha função não são executadas até que todos os threads sejam concluídos eprint 'finished' declaração é chamada. Eu esperaria que eles fossem chamados quando o encadeamento fosse executado. Existe alguma maneira simples de conseguir isso, e por que isso funciona dessa maneira?

def func(param):
    time.sleep(.25)
    print param*2

if __name__ == '__main__':
    print 'starting execution'
    launchTime = time.clock()
    params = range(10)
    pool=multiprocessing.Pool(processes=100) #use N processes to download the data
    _=pool.map(func,params)
    print 'finished'

questionAnswers(2)

yourAnswerToTheQuestion