class_docstr: A special node type for colocating multiple PyNodes as subprocesses.
  
  Please don't add inner nodes to the program, as they will become part of this
  colocation node.
  
  Example:
  
      actor_nodes = []
      for _ in range(10):
        actor_nodes.append(lp.CourierNode(Actor, ...))
      program.add_node(lp.MultiProcessingColocation(actor_nodes))
class_docstr_tok: ["A","special","node","type","for","colocating","multiple","PyNodes","as","subprocesses",".","Please","do","n't","add","inner","nodes","to","the","program",",","as","they","will","become","part","of","this","colocation","node",".","Example",":","actor_nodes","=","[","]","for","_","in","range","(","10",")",":","actor_nodes.append","(","lp.CourierNode","(","Actor",",","...",")",")","program.add_node","(","lp.MultiProcessingColocation","(","actor_nodes",")",")"]
code: def add_node(self, node: python.PyNode) -> HandleType:
      if not isinstance(node, python.PyNode):
          raise ValueError(
              "MultiProcessingColocation only works with PyNodes."
          )
      self._nodes.append(node)
      # Reference all the children addresses (not owned by this node, but only
      # referenced).
      for address in node.addresses:
          self.addresses.append(address)
          # Ensure unique address names (avoid name clash when creating named ports)
          address.name = (
              address.name or "lp"
          )  # Name might not be specified
          unique_id = str(next(self._name_uniquifier[address.name]))
          address.name = address.name + unique_id
      return node.create_handle()
  
imports: import atexit
  import collections
  from concurrent import futures
  import itertools
  import os
  import shutil
  import subprocess
  import tempfile
  from typing import Any
  from absl import flags
  from absl import logging
  import cloudpickle
  from launchpad import address
  from launchpad.launch import serialization
  from launchpad.nodes.python import node
label_desc: Use image node_id 2 for calling the MultiProcessingColocation obj's underlying member method code with example usage: obj.add_node(node) and returns: node