Hi,
Yes sure, you just need to manually do that one step of backprop:
        for opt in optimizers:
            opt.zero_grad()

        # 2) make a prediction
        a  = models[0](x)

        # Janky Pseudocode
        # You stop the autograd here
        a_to_send = a.detach()
        remote_a = a_to_send.send(models[1].location)
        # End Janky Pseudo code

        # re-enable autograd here
        remote_a.requires_grad_()

        pred =  models[1](remote_a)

        # 3) calculate how much we missed
        loss = ((pred - target)**2).sum()

        # 4) figure out which weights caused us to miss
        loss.backward()
        
        #Pseudocode for functionality I want
        grad_a = remote_a.grad
        grad_a.send(model[0].location)
        # Note that the a here is the output of models[0]
        a.backward(grad_a)
        #Pseudocode over


        # 5) change the weights
        for opt in optimizers:
            opt.step()

        # 6) print our progress
        # Do not use .data
        print(loss.detach())