More than 70 people were injured in the blast, which happened after a man rode a motorbike into a crowd of hundreds of pharmacists protesting over drug sale laws.
Punjab police spokesman Nayab Haider said: “Apparently it was a suicide blast but police are still investigating to know the exact nature of blast,”
Two senior police officers are among the dead, including a former provincial counter terrorism chief.
A spokesman for Jamaat-ul-Ahrar, a faction of the Pakistani Taliban, called the Reuters news agency and said it carried out the attack.
It added that it was revenge for Pakistani military operations against Islamic militants in tribal regions along the Afghan border.
The same group had also claimed responsibility for bombing in Lahore on Easter Day last year which killed more than 70 people in a public park.
Live TV said it heard a loud bang and showed smoke billowing up as people ran away, some of them carrying the wounded.
The protest was being staged outside the Punjab provincial assembly building by Pakistan’s chemist and pharmaceuticals manufacturers.
They are angry about new amendments to a law governing drug sales.
Pakistan has had launched several offensives against the Taliban and other Islamic militant groups in the tribal regions.
There are fears the latest blast may jeopardise plans by Pakistan to host the final of its domestic Twenty20 cricket tournament in Lahore in March.
Pakistan’s international test matches are now played abroad and the early rounds of the current Twenty20 tournament are being played in the United Arab Emirates because of security fears.