class_docstr: A subprocess worker via Popen.
  
  PopenWorker provides a low-level
  API to interact with a separate process via Popen.
  
  Parameters
  ----------
  initializer: callable or None
      A callable initializer, or None
  
  initargs: Tuple[object]
      A tuple of args for the initializer
  
  maximum_uses: Optional[int]
      The maximum number of times a process can be used before being recycled,
      i.e. killed and restarted. If `None`, the process will be reused until
      an operation times out.
  
  stdout: Union[None, int, IO[Any]]
      The standard output streams handler specified for the popen process.
  
  stderr: Union[None, int, IO[Any]]
      The standard error streams handler specified for the popen process.
docstr: Raise a child process error.
docstr_tok: ["Raise","a","child","process","error","."]
code: def _child_process_error(self):
      """Raise a child process error."""
      # kill and lazily restart the process in the next send.
      self.kill()
      return ChildProcessError("Subprocess terminated")
  
imports: import os
  import sys
  import struct
  import threading
  import subprocess
  import concurrent.futures
  from enum import IntEnum
  from collections import namedtuple
  import pickle
label_desc: Use image node_id 8 for calling the PopenWorker obj's underlying member method code with example usage: obj._child_process_error() and returns: ChildProcessError