<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _start_claim_channels(self, grpc_channel, channels_ids):
 """ Safely run StartClaim for given channels """

        unclaimed_payments = self._call_GetListUnclaimed(grpc_channel)
        unclaimed_payments_dict = {p["channel_id"] : p for p in unclaimed_payments}

        to_claim = []
        for channel_id in channels_ids:
            if (channel_id not in unclaimed_payments_dict or unclaimed_payments_dict[channel_id]["amount"] == 0):
                self._printout("There is nothing to claim for channel %i, we skip it"%channel_id)
                continue
            blockchain = self._get_channel_state_from_blockchain(channel_id)
            if (unclaimed_payments_dict[channel_id]["nonce"] != blockchain["nonce"]):
                self._printout("Old payment for channel %i is still in progress. Please run claim for this channel later."%channel_id)
                continue
            to_claim.append((channel_id,  blockchain["nonce"]))

        payments = [self._call_StartClaim(grpc_channel, channel_id, nonce) for channel_id, nonce in to_claim]
        return payments