Posso usar uma fila de multiprocessamento em uma função chamada por Pool.imap?

Estou usando o python 2.7 e tentando executar algumas tarefas pesadas da CPU em seus próprios processos. Eu gostaria de poder enviar mensagens de volta ao processo pai para mantê-lo informado sobre o status atual do processo. A fila de multiprocessamento parece perfeita para isso, mas não consigo descobrir como fazê-lo funcionar.

Portanto, este é o meu exemplo básico de trabalho menos o uso de uma Fila.

import multiprocessing as mp
import time

def f(x):
    return x*x

def main():
    pool = mp.Pool()
    results = pool.imap_unordered(f, range(1, 6))
    time.sleep(1)

    print str(results.next())

    pool.close()
    pool.join()

if __name__ == '__main__':
    main()

Eu tentei passar a fila de várias maneiras e eles recebem a mensagem de erro "RuntimeError: objetos de fila só devem ser compartilhados entre processos por herança". Aqui está uma das maneiras que tentei com base em uma resposta anterior que encontrei. (Recebo o mesmo problema ao tentar usar Pool.map_async e Pool.imap)

import multiprocessing as mp
import time

def f(args):
    x = args[0]
    q = args[1]
    q.put(str(x))
    time.sleep(0.1)
    return x*x

def main():
    q = mp.Queue()
    pool = mp.Pool()
    results = pool.imap_unordered(f, ([i, q] for i in range(1, 6)))

    print str(q.get())

    pool.close()
    pool.join()

if __name__ == '__main__':
    main()

Finalmente, a abordagem de adequação 0 (global) não gera nenhuma mensagem, apenas trava.

import multiprocessing as mp
import time

q = mp.Queue()

def f(x):
    q.put(str(x))
    return x*x

def main():
    pool = mp.Pool()
    results = pool.imap_unordered(f, range(1, 6))
    time.sleep(1)

    print q.get()

    pool.close()
    pool.join()

if __name__ == '__main__':
    main()

Estou ciente de que provavelmente funcionará com multiprocessamento. Processe diretamente e que existem outras bibliotecas para fazer isso, mas eu odeio me afastar das funções padrão da biblioteca que são ótimas, até ter certeza de que não é apenas minha falta de conhecimento, impedindo-me de explorá-los.

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion