docs: def init(self):
          """
          Initialize the computers. Should be called on the workers
          """
          if hasattr(self, 'computers'):  # init already called
              return
          with hdf5.File(self.rupgetter.filename, 'r') as parent:
              self.weights = parent['weights'].value
          self.computers = []
          for ebr in self.rupgetter.get_ruptures(self.srcfilter):
              sitecol = self.sitecol.filtered(ebr.sids)
              try:
                  computer = calc.gmf.GmfComputer(
                      ebr, sitecol, self.oqparam.imtls, self.cmaker,
                      self.oqparam.truncation_level, self.correl_model)
              except FarAwayRupture:
                  # due to numeric errors, ruptures within the maximum_distance
                  # when written, can be outside when read; I found a case with
                  # a distance of 99.9996936 km over a maximum distance of 100 km
                  continue
              self.computers.append(computer)