You need to alias some field to `Id` in order for the `Map<Id, SObject>(List<SObject>)` constructor to work.

    SELECT
        OpportunityLineItemId Id, 
        MIN(ScheduleDate) Starts
    FROM OpportunityLineItemSchedule 
    WHERE ...
    GROUP BY OpportunityLineItemId

As your query is currently written, a given `AggregateResult` will only allow you to get three "fields":

- `expr0`
- `OpportujnityLineItemId`
- `Starts`