Perfil de multiprocesso do Python

Eu estou lutando para descobrir como criar um perfil de script python multiprocess simples

import multiprocessing
import cProfile
import time
def worker(num):
    time.sleep(3)
    print 'Worker:', num

if __name__ == '__main__':
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i,))
        cProfile.run('p.start()', 'prof%d.prof' %i)

Eu estou começando 5 processos e, portanto, cProfile gera 5 arquivos diferentes. Dentro de cada um eu quero ver que meu método 'worker' leva aproximadamente 3 segundos para rodar, mas ao invés disso eu estou vendo apenas o que está acontecendo dentro do 'start'.

Eu agradeceria muito se alguém pudesse explicar isso para mim.

Atualização: Exemplo de trabalho com base na resposta aceita:
import multiprocessing
import cProfile
import time
def test(num):
    time.sleep(3)
    print 'Worker:', num

def worker(num):
    cProfile.runctx('test(num)', globals(), locals(), 'prof%d.prof' %num)


if __name__ == '__main__':
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i,))
        p.start()

questionAnswers(1)

yourAnswerToTheQuestion