The subprocess needs to be alive at the time when the master process receives the Tensor. There are two ways to fix that:

Use an Event to synchronize processes
Use file_system sharing strategy (not recommended)

This example should work:
import torch
import torch.multiprocessing as mp

def put_in_q(idx, q, evt):
    q.put(torch.IntTensor(2, 2).fill_(idx))
    evt.wait()

q = mp.Queue()

evt = mp.Event()
p = mp.Process(target=put_in_q, args=(0, q, evt))
p.start()

x = q.get()
evt.set()
print(x)

p.join()

To synchronize a larger number of processes you can use mp.Barrier (available only in Python3).