docs: def configure(self, global_config=False, project_config=False, ifile=None,
                    forcing=None, serial=False, nprocs=None, update_from=None,
                    **kwargs):
          """
          Configure the project and experiments
  
          Parameters
          ----------
          global_config: bool
              If True/set, the configuration are applied globally (already
              existing and configured experiments are not impacted)
          project_config: bool
              Apply the configuration on the entire project instance instead of
              only the single experiment (already existing and configured
              experiments are not impacted)
          ifile: str
              The input file for the project. Must be a netCDF file with
              population data
          forcing: str
              The input file for the project containing variables with population
              evolution information. Possible variables in the netCDF file are
              *movement* containing the number of people to move and *change*
              containing the population change (positive or negative)
          serial: bool
              Do the parameterization always serial (i.e. not in parallel on
              multiple processors). Does automatically impact global settings
          nprocs: int or 'all'
              Maximum number of processes to when making the parameterization in
              parallel. Does automatically impact global settings and disables
              `serial`
          update_from: str
              Path to a yaml configuration file to update the specified
              configuration with it
          ``**kwargs``
              Other keywords for the :meth:`app_main` method"""
          if global_config:
              d = self.config.global_config
          elif project_config:
              self.app_main(**kwargs)
              d = self.config.projects[self.projectname]
          else:
              d = self.config.experiments[self.experiment]
  
          if ifile is not None:
              d['input'] = osp.abspath(ifile)
          if forcing is not None:
              d['forcing'] = osp.abspath(forcing)
  
          if update_from is not None:
              with open('update_from') as f:
                  d.update(yaml.load(f))
  
          global_config = self.config.global_config
          if serial:
              global_config['serial'] = True
          elif nprocs:
              nprocs = int(nprocs) if nprocs != 'all' else nprocs
              global_config['serial'] = False
              global_config['nprocs'] = nprocs