multiprocessing pool example no funciona y congela el kernel

Estoy tratando de paralelizar una secuencia de comandos, pero por una razón desconocida el núcleo simplemente se congela sin que se produzcan errores.

ejemplo de trabajo mínimo:

from multiprocessing import Pool

def f(x):
  return x*x

p = Pool(6)
print(p.map(f, range(10)))   

Interesantemente, todo funciona bien si defino mi función en otro archivo y luego la importo. ¿Cómo puedo hacer que funcione sin la necesidad de otro archivo?

Trabajo con Spyder (anaconda) y obtengo el mismo resultado si ejecuto mi código desde la línea de comandos de Windows.

Respuestas a la pregunta(1)

Su respuesta a la pregunta