Commission President Jean-Claude Juncker promised Ukrainian President Petro Poroshenko in March that the EU executive would put forward the eagerly awaited proposal in April, offering Ukrainians the most tangible benefit of closer ties at a time when a free trade deal has not yet borne fruit for their economy.
The proposal must be approved by a qualified majority of EU member states and by the European Parliament to take effect.
The source said the Commission would include some form of safeguard enabling EU countries to reinstate visas temporarily in case of a surge of migration.
Ukraine has a population of some 45 million. Russia's 2013 annexation of Crimea and the fighting with pro-Russian separatists in eastern Ukraine has not so far led to a large exodus from the country, EU officials note.
The Dutch voted by 61% last week in a non-binding referendum called by Eurosceptics to reject the association agreement on closer political, security and trade ties between Kiev and the 28-nation bloc.
Less than a third of the electorate turned out, but the turnout was just more than the 30% required for the result to be valid.
Dutch Prime Minister Mark Rutte said the government could not proceed with ratification of the deal which the other 27 EU countries have already approved, and which has provisionally entered into force. The EU Commission said it was up toDutch leaders to reflect on the vote and suggest a way forward.